import axios from "axios";
import Cookies from "js-cookie";
import { getCookie } from "@/utils/jsCookie";
// 创建 axios 实例
const service = axios.create({
  baseURL: "", // API 的 base_url
  timeout: 10000, // 请求超时时间
});
// 请求拦截器
service.interceptors.request.use(
  (config) => {
    config.headers["Authorization"] = "Bearer " + getCookie("token");
    return config;
  },
  (error) => {
    // 请求错误处理
    // console.log(error);
    return Promise.reject(error);
  }
);
// 响应拦截器
service.interceptors.response.use(
  (response) => {
    // 对响应数据做处理，例如只返回 data 部分
    if (response.data instanceof Blob) {
      return response.data;
    }
    const res = response.data;
    // 如果返回的状态码为 200，说明成功，可以直接返回数据
    if (res.code == "1") {
      return res;
    } else {
      // 其他状态码都当作错误处理
      ElMessage({
        showClose: true,
        message: res.message,
        type: "error",
      });
      return res;
    }
  },
  (error) => {
    // 对响应错误做处理
    ElMessage({
      showClose: true,
      message: error,
      type: "error",
      duration: 1000,
      onClose: () => {
        if (error.status == 401) {
          window.parent.location.href = window.rootUrl;
        }
      },
    });

    return error;
  }
);
export default service;
